<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>$(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)</TargetFrameworks>
    <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile>
  </PropertyGroup>

  <!-- DesignTimeBuild requires all the TargetFramework Derived Properties to not be present in the first property group. -->
  <PropertyGroup>
    <TargetPlatformIdentifier>$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)'))</TargetPlatformIdentifier>
    <AllowUnsafeBlocks Condition="'$(TargetPlatformIdentifier)' == 'windows'">true</AllowUnsafeBlocks>
    <GeneratePlatformNotSupportedAssemblyMessage Condition="'$(TargetPlatformIdentifier)' != 'windows'">SR.PlatformNotSupported_AccessControl</GeneratePlatformNotSupportedAssemblyMessage>
  </PropertyGroup>

  <!-- Source includes -->
  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
    <Compile Include="$(CommonPath)DisableRuntimeMarshalling.cs"
             Link="Common\DisableRuntimeMarshalling.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Errors.cs"
             Link="Common\Interop\Windows\Interop.Errors.cs" />
    <Compile Include="$(CommonPath)System\NotImplemented.cs"
             Link="Common\System\NotImplemented.cs" />
    <Compile Include="System\IO\FileSystemAclExtensions.cs" />
    <Compile Include="System\Security\AccessControl\DirectoryObjectSecurity.cs" />
    <Compile Include="System\Security\AccessControl\DirectorySecurity.cs" />
    <Compile Include="System\Security\AccessControl\FileSecurity.cs" />
    <Compile Include="System\Security\AccessControl\FileSystemAccessRule.cs" />
    <Compile Include="System\Security\AccessControl\FileSystemAuditRule.cs" />
    <Compile Include="System\Security\AccessControl\FileSystemRights.cs" />
    <Compile Include="System\Security\AccessControl\FileSystemSecurity.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.BOOL.cs"
             Link="Common\Interop\Windows\Interop.BOOL.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateFile.cs"
             Link="Common\Interop\Windows\Interop.CreateFile.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FILE_TIME.cs"
             Link="Common\Interop\Windows\Interop.FILE_TIME.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FileAttributes.cs"
             Link="Common\Interop\Windows\Interop.FileAttributes.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FileTypes.cs"
             Link="Common\Interop\Windows\Interop.FileTypes.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FindClose.cs"
             Link="Common\Interop\Windows\Interop.FindClose.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FindFirstFileEx.cs"
             Link="Common\Interop\Windows\Interop.FindFirstFileEx.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.FormatMessage.cs"
             Link="Common\Interop\Windows\Interop.FormatMessage.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GenericOperations.cs"
             Link="Common\Interop\Windows\Interop.GenericOperations.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GET_FILEEX_INFO_LEVELS.cs"
             Link="Common\Interop\Windows\Interop.GET_FILEEX_INFO_LEVELS.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetFileAttributesEx.cs"
             Link="Common\Interop\Windows\Interop.GetFileAttributesEx.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetFullPathNameW.cs"
             Link="Common\Interop\Windows\Interop.GetFullPathNameW.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetLongPathNameW.cs"
             Link="Common\Interop\Windows\Interop.GetLongPathNameW.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.MAX_PATH.cs"
             Link="Common\Interop\Windows\Interop.MAX_PATH.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SecurityOptions.cs"
             Link="Common\Interop\Windows\Interop.SecurityOptions.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SECURITY_ATTRIBUTES.cs"
             Link="Common\Interop\Windows\Interop.SECURITY_ATTRIBUTES.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.SetThreadErrorMode.cs"
             Link="Common\Interop\Windows\Interop.SetThreadErrorMode.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.WIN32_FILE_ATTRIBUTE_DATA.cs"
             Link="Common\Interop\Windows\Interop.WIN32_FILE_ATTRIBUTE_DATA.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.WIN32_FIND_DATA.cs"
             Link="Common\Interop\Windows\Interop.WIN32_FIND_DATA.cs" />
    <Compile Include="$(CoreLibSharedDir)System\IO\DisableMediaInsertionPrompt.cs"
             Link="Common\System\IO\DisableMediaInsertionPrompt.cs" />
    <Compile Include="$(CoreLibSharedDir)System\IO\PathHelper.Windows.cs"
             Link="System\IO\PathHelper.Windows.cs" />
    <Compile Include="$(CommonPath)System\IO\PathInternal.cs"
             Link="System\IO\PathInternal.cs" />
    <Compile Include="$(CommonPath)System\IO\PathInternal.Windows.cs"
             Link="System\IO\PathInternal.Windows.cs" />
    <Compile Include="$(CommonPath)System\IO\Win32Marshal.cs"
             Link="Common\System\IO\Win32Marshal.cs" />
    <Compile Include="$(CommonPath)System\Text\ValueStringBuilder.cs"
             Link="Common\System\Text\ValueStringBuilder.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Libraries.cs"
             Link="Common\Interop\Windows\Interop.Libraries.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.LongFileTime.cs"
             Link="Common\Interop\Windows\Interop.LongFileTime.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CreateDirectory.cs"
             Link="Common\Interop\Windows\Interop.CreateDirectory.cs" />
    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeFindHandle.Windows.cs"
             Link="Common\Microsoft\Win32\SafeHandles\SafeFindHandle.Windows.cs" />
    <Compile Include="$(CommonPath)System\IO\FileSystem.Attributes.Windows.cs"
             Link="Common\System\IO\FileSystem.Attributes.Windows.cs" />
    <Compile Include="$(CommonPath)System\IO\FileSystem.DirectoryCreation.Windows.cs"
             Link="Common\System\IO\FileSystem.DirectoryCreation.Windows.cs" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="System.Collections" Condition="'$(TargetPlatformIdentifier)' == 'windows'" />
    <Reference Include="System.Collections.NonGeneric" />
    <Reference Include="System.Memory" Condition="'$(TargetPlatformIdentifier)' == 'windows'" />
    <Reference Include="System.Runtime" />
    <Reference Include="System.Runtime.InteropServices" Condition="'$(TargetPlatformIdentifier)' == 'windows'" />
    <Reference Include="System.Security.AccessControl" />
    <Reference Include="System.Security.Principal.Windows" />
  </ItemGroup>

</Project>
